Application developers and programmers use various tools, systems, and methods to generate applications, programs, and interfaces. Generally, applications are developed in one of a plurality of development technology platforms, including MICROSOFT's® .NET, Sun System's JAVA™, or other suitable programming languages and development environments. Additionally, the user interfaces (UIs) associated with applications may be modeled, created, or modified using a particular technology or tool. In some instances, applications may be developed in an integrated development environment (IDE). IDEs are designed to maximize programmer and developer productivity by providing connections between software components and UIs. Some IDEs are associated with a specific programming language, so as to provide a feature set which more closely matches the programming requirements, syntax, and operations of the specific programming language, while other IDEs may be used with multiple programming languages.
Service-oriented applications allow developers to re-use business logic and portions of applications written by the developers themselves, as well as business logic written by others. The reusable business logic can be represented and exposed as a web service, and may be stored local to or remote from the present developer. Some web services may be available at a remotely located server or system, as well as at cloud-based systems storing or exposing services. Generally, services are identified that perform one or more operations or functions associated with the application being developed. These services can be found in service directories, such as a universal description discovery and integration (UDDI) registry containing one or more web services described in Web Services Description Language (WSDL) documents providing information regarding each of the web services stored in or referenced by the registry. Alternatively, services may be found through developer networks associated with a particular business or entity, or through services provided by or created by a community network of developers working on similar platforms and solutions.
Services are generally identified outside of the developer's IDE and are not integrated into the development process. In general, the search may be based on the service name, inputs, outputs, or description of the desired service. Once a service satisfying the developer's or application's needs is identified, the service can then be connected (or bound) to an application UI that will be used in connection with the service itself. In most instances, the identified service will not match exactly to the UI. For example, the service may require more, less, or different inputs and outputs than provided by the corresponding UI. Additionally, the UI may have similar names or labels as the inputs or outputs associated with the identified service, although in actuality, different information is represented.